package com.alks.function.service.biocontrol.deptwork;

import com.alks.entity.data.entity.PcCuttingLsHead;
import com.alks.entity.data.entity.PsScheduleHead;
import com.alks.entity.data.page.PageRecord;
import com.alks.function.data.dto.biocontrol.webwork.MoldProgTempDto;
import com.alks.function.data.dto.biocontrol.webwork.SchLineDto;
import com.alks.function.data.request.biocontrol.webwork.CancelSchRequest;
import com.alks.function.data.request.biocontrol.webwork.MoldProgtTempRequest;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author MS
 * @since 2024/10/5下午6:19
 */
public interface IMoldProgService {
    /**
     * 成型待排指令数据查询
     * @param request 查询条件
     * @return 待排指令数据
     */
    PageRecord<MoldProgTempDto> temp(MoldProgtTempRequest request);

    /**
     * 成型产线数据查询
     * @return 产线相关数据
     */
    List<SchLineDto> lineTemp();

    /**
     * 已排进度明细查询
     * @param request 查询条件
     * @return 已排进度明细
     */
    PageRecord<PsScheduleHead> detail(MoldProgtTempRequest request);

    /**
     * 指令更新
     */
    void upLot();

    /**
     * 拆单查询
     * @param lotNo 指令
     * @return 拆单数据
     */
    List<PcCuttingLsHead> lsQuery(String lotNo);

    /**
     * 拆单安排
     *
     * @param lotNo 指令
     * @param lsNo  批次
     * @param line
     * @param seqNo
     */
    void lsSch(String lotNo, List<Integer> lsNo, String line, BigDecimal seqNo);

    /**
     * 整单安排
     *
     * @param lotNoList 指令集合
     * @param line
     * @param seqNo
     */
    void allSch(List<String> lotNoList, String line, BigDecimal seqNo);

    /**
     * 取消安排
     * @param request 取消安排定位数据
     */
    void cancelSch(List<CancelSchRequest> request);

    /**
     * 对序号重新排列
     */
    void reOrder();

    /**
     * 客户回显
     * @param brand 模糊匹配客户
     * @return 客户回显表
     */
    List<String> brandBack(String brand);

    /**
     * 指令更新
     */
    void schUp();
}
